.TH nfc-mfclassic 1 "Nov 02, 2009" "libnfc" "NFC Utilities"
.SH NAME
nfc-mfclassic \- MIFARE Classic command line tool
.SH SYNOPSIS
.B nfc-mfclassic
.RI \fR\fBf\fR|\fR\fBr\fR|\fR\fBR\fR|\fBw\fR\fR|\fBW\fR
.RI \fR\fBa\fR|\fR\fBA\fR|\fBb\fR\fR|\fBB\fR
.RI \fR\fBu\fR\fR|\fBU\fR<\fBuid\fR>\fR
.IR DUMP
.RI [
.IR KEYS
.RI [\fR\fBf\fR]
.RI ]

.SH DESCRIPTION
.B nfc-mfclassic
is a MIFARE Classic tool that allow to read or write
.IR DUMP
file using MIFARE keys provided in 
.IR KEYS
file.

MIFARE Classic tag is one of the most widely used RFID tags.

The firmware in the NFC controller supports authenticating, reading and writing
to/from MIFARE Classic tags. This tool demonstrates the speed of this library
and its ease-of-use. It's possible to read and write the complete content of a
MIFARE Classic 4KB tag within 1 second. It uses a binary MIFARE Dump file (MFD)
to store the keys and data for all sectors.

Be cautious that some parts of a MIFARE Classic memory are used for r/w access
of the rest of the memory, so please read the tag documentation before experimenting too much!

The
.B f
option to format the card will reset all keys to FFFFFFFFFFFF, all data to 00 and all ACLs to default.

The
.B W
option allows writing of special MIFARE cards that can be 'unlocked' to allow block 0
to be overwritten. This includes UID and manufacturer data. Take care when amending UIDs to set
the correct BCC (UID checksum). Currently only 4 byte UIDs are supported.

Similarly, the
.B R
option allows an 'unlocked' read. This bypasses authentication and allows
reading of the Key A and Key B data regardless of ACLs.

R/W errors on some blocks can be either considered as critical or ignored.
To halt on first error, specify keys with lowercase (
.B a
or
.B b
). To ignore such errors, use uppercase (
.B A
or
.B B
).

When using multiple tags infront of a reader, the
.B U
option can be used to supply the UID of tag to be read or written. Append the
hexadecimal UID to the U option. For example U01ab23cd for the 4 byte UID
0x01 0xab 0x23 0xcd. Using the
.B u
parameter instead will use whatever libnfc decides which generally is the lowest
UID.

*** Note that
.B W
and
.B R
options only work on special versions of MIFARE 1K cards (Chinese clones).

.SH OPTIONS
.TP
.BR f " | " r " | " R " | " w " | " W
Perform format (
.B f
) or read from (
.B r
) or unlocked read from (
.B R
) or write to (
.B w
) or unlocked write to (
.B W
) card.
.TP
.BR a " | " A " | " b " | " B
Use A or B MIFARE keys.
Halt on errors (
.B a
|
.B b
) or tolerate errors (
.B A
|
.B
B
).
.TP
.BR u " | " U
Use the default UID (
.B u
) or supply a valid 4 byte UID (
.B U<uid>
).
.TP
.IR DUMP
MiFare Dump (MFD) used to write (card to MFD) or (MFD to card)
.TP
.IR KEYS
MiFare Dump (MFD) that contains the keys (optional). Data part of the dump is ignored.
.TP
.B f
Force using the keyfile
.IR KEYS
even if UID does not match (optional).

.SH BUGS
Please report any bugs on the
.B libnfc
issue tracker at:
.br
.BR https://github.com/nfc-tools/libnfc/issues
.SH LICENCE
.B libnfc
is licensed under the GNU Lesser General Public License (LGPL), version 3.
.br
.B libnfc-utils
and
.B libnfc-examples
are covered by the the BSD 2-Clause license.

.SH AUTHORS
Adam Laurie <adam@algroup.co.uk>, 
.br
Roel Verdult <roel@libnfc.org>, 
.br
Romain Tartière <romain@libnfc.org>, 
.br
Romuald Conty <romuald@libnfc.org>.
.PP
This manual page was written by Romuald Conty <romuald@libnfc.org>.
It is licensed under the terms of the GNU GPL (version 2 or later).
